﻿using System;

namespace rosata.Providers.Session
{
    public interface IUserSessionProvider
    {
        DatiUtenteDm GetUserValuesFromSession();

        /// <summary>
        /// inserisce l'utente nella sessione
        /// </summary>
        /// <param name="datiUtente"></param>
        void PutUserValuesToSession(DatiUtenteDm datiUtente);

        /// <summary>
        /// controlla se esiste l'utente nella sessione
        /// </summary>
        /// <returns></returns>
        bool ExistUserInSession();

        /// <summary>
        /// utente di amministratore o meno
        /// </summary>
        /// <returns></returns>
        bool IsAdminSession();

        /// <summary>
        /// effettua il login per l'amministratore
        /// </summary>
        /// <returns></returns>
        bool LogAdmin(string username, string password);
    }

    public class DatiUtenteDm
    {
        public Guid Id { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
        public DateTime DataNascita { get; set; }
        public string Citta { get; set; }
        public string Via { get; set; }
        public string Cap { get; set; }
        public string NCivico { get; set; }
        public string Email { get; set; }
        public string Telefono { get; set; }
        public string Nome { get; set; }
        public string Cognome { get; set; }
        public string Sesso { get; set; }
    }
}
